from PublicReference.base import *
import math

等级 = 100 + 5


# class 主动技能(主动技能):
#     def 等效CD(self, 武器类型, 输出类型):
#         return round(self.CD / self.恢复, 1)


class 技能0(主动技能):
    名称 = '火遁·豪火球之术'
    所在等级 = 15
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 109, 121, 130, 143, 153, 166, 176, 188, 197, 210, 220, 232, 243, 254, 264, 277, 287, 299, 309, 321, 331, 344, 354, 363, 375, 386, 398, 407, 420, 430, 442, 452, 465, 474, 487, 497, 509, 519, 531, 541, 553, 564, 576, 585, 598, 608, 620, 630, 642, 652, 665, 675, 687, 696, 709, 719, 731, 742, 754, 763, 776, 786, 798, 809, 820, 830, 843, 853, 862, 874]
    攻击次数1 = 12
    data2 = [0, 438, 482, 526, 570, 616, 660, 703, 747, 792, 837, 881, 925, 970, 1014, 1059, 1103, 1148, 1191, 1235, 1280, 1325, 1369, 1413, 1457, 1503, 1547, 1591, 1635, 1678, 1724, 1768, 1812, 1857, 1902, 1946, 1990, 2035, 2079, 2124, 2167, 2211, 2256, 2300, 2345, 2389, 2434, 2478, 2523, 2567, 2612, 2655, 2699, 2744, 2789, 2833, 2877, 2921, 2967, 3011, 3055, 3099, 3143, 3188, 3232, 3276, 3321, 3366, 3410, 3454, 3499]
    攻击次数2 = 1
    CD = 7.5
    # CD = 6.3
    攻击倍率 = 1
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率


class 技能1(主动技能):
    名称 = '忍法：幻影手里剑'
    备注 = '(结印打满40hit)'
    所在等级 = 20
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]
    攻击次数1 = 10
    data2 = [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]
    攻击次数2 = 10*2
    攻击倍率2 = 0.5
    data3 = [0, 162, 179, 195, 212, 228, 245, 261, 278, 293, 311, 328, 343, 359, 376, 393, 410, 425, 442, 459, 475, 491, 508, 524, 541, 558, 573, 590, 607, 623, 639, 656, 673, 689, 706, 721, 739, 755, 771, 788, 805, 820, 837, 854, 869, 886, 903, 920, 936, 952, 968, 986, 1002, 1017, 1034, 1052, 1067, 1084, 1100, 1117, 1133, 1149, 1167, 1183, 1198, 1215, 1233, 1248, 1264, 1281, 1298]
    攻击次数3 = 10
    攻击倍率3 = 0.3
    攻击倍率 = 1.0
    CD = 12.0
    # CD = 10.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 * self.攻击倍率2 + self.data3[self.等级] * self.攻击次数3 * self.攻击倍率3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率


class 技能2(主动技能):
    名称 = '火遁·飓风煞'
    所在等级 = 25
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 112, 124, 136, 146, 158, 168, 180, 193, 203, 215, 226, 238, 248, 259, 271, 283, 295, 306, 316, 327, 340, 351, 363, 374, 385, 396, 408, 420, 431, 442, 453, 465, 476, 488, 499, 510, 522, 533, 545, 557, 567, 579, 590, 602, 611, 625, 637, 647, 659, 669, 681, 693, 705, 717, 726, 738, 749, 761, 773, 785, 794, 806, 818, 829, 842, 851, 863, 874, 886, 898]
    攻击次数1 = 25
    data2 = [0, 823, 906, 989, 1072, 1156, 1241, 1324, 1408, 1490, 1573, 1656, 1740, 1825, 1908, 1991, 2074, 2158, 2242, 2325, 2409, 2492, 2575, 2658, 2742, 2825, 2908, 2991, 3076, 3160, 3243, 3327, 3409, 3493, 3575, 3660, 3744, 3827, 3910, 3993, 4077, 4162, 4245, 4329, 4411, 4494, 4577, 4661, 4745, 4829, 4912, 4995, 5079, 5163, 5246, 5331, 5413, 5496, 5579, 5663, 5747, 5829, 5913, 5997, 6081, 6164, 6248, 6330, 6413, 6496, 6581]
    攻击次数2 = 1
    CD = 17
    攻击倍率 = 1.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率


class 技能3(被动技能):
    名称 = '苦无精通'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.23 + 0.01 * self.等级, 5)

    def 魔法攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能4(被动技能):
    名称 = '烈焰印记'
    所在等级 = 25
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.3 + 0.01 * self.等级, 5)


class 技能5(主动技能):
    名称 = '火遁·螺旋手里剑'
    所在等级 = 30
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 170, 187, 203, 221, 238, 255, 273, 290, 308, 324, 341, 359, 376, 393, 411, 427, 445, 462, 479, 497, 514, 530, 548, 565, 583, 600, 616, 634, 651, 668, 686, 703, 719, 737, 754, 772, 789, 806, 824, 840, 857, 875, 892, 910, 926, 943, 961, 978, 995, 1013, 1029, 1047, 1064, 1081, 1099, 1116, 1132, 1150, 1167, 1184, 1202, 1219, 1236, 1253, 1270, 1288, 1305, 1321, 1339, 1356]
    攻击次数1 = 15
    data2 = [0, 699, 771, 841, 912, 983, 1055, 1125, 1196, 1266, 1338, 1409, 1479, 1551, 1622, 1693, 1763, 1835, 1906, 1976, 2048, 2119, 2189, 2260, 2332, 2402, 2473, 2544, 2615, 2686, 2757, 2828, 2899, 2970, 3040, 3112, 3183, 3253, 3324, 3396, 3466, 3537, 3609, 3680, 3750, 3821, 3893, 3963, 4034, 4106, 4176, 4247, 4318, 4389, 4460, 4531, 4601, 4673, 4744, 4814, 4886, 4957, 5027, 5098, 5170, 5240, 5311, 5382, 5453, 5524, 5595]
    攻击次数2 = 1
    CD = 12.0
    攻击倍率 = 1.0
    TP成长 = 0
    TP基础 = 5
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        if self.TP等级 == 0:
            return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * self.倍率 * self.攻击倍率
        else:
            if self.TP等级 <= 5:
                return (self.data1[self.等级] * (self.攻击次数1-self.TP等级*2-1) + (self.data2[self.等级] * (self.TP等级+1)) * self.攻击次数2) * self.倍率 * self.攻击倍率

    # def 等效百分比(self, 武器类型):
        # return (self.data1[self.等级] * (self.攻击次数1-self.TP等级*2-1) + (self.data2[self.等级] * (self.TP等级+1))* self.攻击次数2)


class 技能6(主动技能):
    名称 = '忍法：替身术'
    所在等级 = 35
    等级上限 = 60
    学习间隔 = 3
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 1565, 1815, 2064, 2314, 2564, 2812, 3062, 3312, 3563, 3810, 4062, 4311, 4560, 4810, 5060, 5308, 5558, 5808, 6057, 6307, 6556, 6805, 7056, 7306, 7555, 7804, 8054, 8303, 8553, 8803, 9051, 9301, 9551, 9800, 10049, 10301, 10549, 10799, 11049, 11298, 11547, 11797, 12046, 12296, 12546, 12794, 13044, 13295, 13543, 13794, 14043, 14292, 14542, 14792, 15040, 15290, 15540, 15789, 16039, 16288, 16537, 16788, 17038, 17287, 17537, 17786, 18036, 18285, 18535, 18785]
    攻击次数1 = 1
    data2 = [0, 939, 1089, 1238, 1389, 1538, 1689, 1837, 1987, 2138, 2286, 2437, 2587, 2736, 2886, 3034, 3185, 3336, 3485, 3634, 3784, 3934, 4084, 4233, 4384, 4532, 4682, 4833, 4981, 5132, 5281, 5432, 5581, 5731, 5881, 6029, 6180, 6330, 6479, 6629, 6779, 6928, 7079, 7228, 7378, 7527, 7677, 7827, 7976, 8127, 8275, 8426, 8576, 8724, 8875, 9024, 9174, 9324, 9474, 9623, 9773, 9923, 10074, 10222, 10372, 10523, 10671, 10822, 10970, 11121, 11271]
    攻击次数2 = 1
    data3 = [0, 4133, 4791, 5450, 6109, 6768, 7427, 8086, 8744, 9404, 10062, 10721, 11380, 12037, 12698, 13355, 14016, 14673, 15334, 15992, 16649, 17310, 17967, 18628, 19285, 19944, 20603, 21260, 21922, 22578, 23240, 23896, 24555, 25214, 25873, 26532, 27190, 27849, 28508, 29167, 29826, 30485, 31143, 31803, 32461, 33120, 33779, 34438, 35097, 35755, 36415, 37073, 37733, 38391, 39049, 39709, 40367, 41027, 41685, 42345, 43003, 43660, 44321, 44978, 45639, 46296, 46955, 47614, 48273, 48932, 49590]
    攻击次数3 = 1
    攻击倍率 = 1.0
    CD = 25
    # CD = 26.2
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率


class 技能7(主动技能):
    名称 = '火遁·炎天道'
    备注 = '(地面释放)'
    所在等级 = 35
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 228, 249, 276, 296, 319, 342, 366, 389, 412, 436, 457, 483, 504, 527, 549, 574, 598, 619, 645, 666, 690, 712, 735, 759, 782, 806, 827, 853, 874, 898, 918, 941, 966, 988, 1012, 1034, 1059, 1081, 1105, 1128, 1151, 1175, 1195, 1221, 1242, 1266, 1289, 1312, 1336, 1358, 1382, 1404, 1429, 1451, 1475, 1498, 1521, 1545, 1567, 1591, 1610, 1638, 1658, 1681, 1704, 1728, 1751, 1773, 1797, 1820]  # 地面爆炸
    攻击次数1 = 1
    #空中data2 = [0, 377, 416, 454, 493, 530, 571, 608, 647, 683, 722, 760, 799, 837, 877, 914, 952, 991, 1028, 1067, 1105,1145, 1183, 1222, 1258, 1297, 1335, 1373, 1411, 1451, 1489, 1528, 1565, 1604, 1642, 1680, 1719, 1757, 1796,1834, 1871, 1909, 1948, 1986, 2025, 2063, 2102, 2140, 2179, 2216, 2255, 2294, 2333, 2370, 2407, 2446, 2484,2522, 2560, 2600, 2638, 2677, 2714, 2753, 2791, 2829, 2869, 2907, 2945, 2983, 3021]
    #攻击次数2 = 1
    #data1 = [0, 567, 623, 682, 738, 795, 854, 912, 969, 1027, 1085, 1141, 1198, 1256, 1313, 1372, 1428, 1486, 1544, 1601,1659, 1717, 1772, 1830, 1888, 1946, 2003, 2062, 2118, 2175, 2234, 2291, 2348, 2406, 2462, 2520, 2578, 2636,2692, 2752, 2808, 2864, 2923, 2980, 3036, 3095, 3152, 3210, 3268, 3326, 3383, 3440, 3497, 3554, 3612, 3670,3727, 3784, 3842, 3900, 3957, 4015, 4071, 4128, 4186, 4244, 4302, 4360, 4416, 4474, 4533]
    #攻击次数1 = 1
    data2 = [0, 454, 501, 547, 594, 639, 688, 733, 780, 823, 870, 916, 963, 1009, 1057, 1101, 1147, 1194, 1239, 1286, 1332, 1380, 1426, 1473, 1516, 1563, 1609, 1654, 1700, 1748, 1794, 1841, 1886, 1933, 1979, 2024, 2071, 2117, 2164, 2210, 2255, 2300, 2347, 2393, 2440, 2486, 2533, 2579, 2626, 2670, 2717, 2764, 2811, 2856, 2900, 2947, 2993, 3039, 3085, 3133, 3179, 3226, 3270, 3317, 3363, 3409, 3457, 3503, 3549, 3595, 3640]
    攻击次数2 = 1
    data3 = [0, 4227, 4655, 5084, 5513, 5942, 6371, 6800, 7229, 7658, 8088, 8515, 8944, 9372, 9803, 10230, 10659, 11087, 11516, 11946, 12374, 12804, 13233, 13661, 14091, 14520, 14948, 15377, 15806, 16235, 16664, 17093, 17518, 17948, 18379, 18806, 19235, 19664, 20093, 20522, 20951, 21379, 21808, 22238, 22666, 23095, 23525, 23953, 24383, 24812, 25240, 25669, 26099, 26526, 26955, 27382, 27811, 28242, 28669, 29100, 29529, 29956, 30386, 30815, 31243, 31672, 32100, 32529, 32958, 33387, 33815]  # 火焰球爆炸
    攻击次数3 = 1
    CD = 18
    攻击倍率 = 1.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.1
            self.攻击次数3 = 1 * 1.08
        elif x == 1:
            self.倍率 *= 1.1 + 0.08
            self.攻击次数3 = 1 * 1.08


class 技能8(主动技能):
    名称 = '忍法：残影术'
    所在等级 = 35
    等级上限 = 11
    基础等级 = 1
    是否有伤害 = 0
    关联技能 = ['火遁·豪火球之术', '忍法：幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法：替身术', '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '火遁·冥炎业火阵', '八岐大蛇',
            '火遁·风魔手里剑', '忍法：飞燕手里剑', '天照', '勾玉之火·镰鼬', '火炎灼空：草雉剑', '火源限界·八咫乌']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.98 + 0.02 * self.等级, 5)


class 技能9(主动技能):
    名称 = '火遁·蟾蜍油炎弹'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    data1 = [0, 191, 211, 229, 249, 269, 287, 307, 326, 346, 365, 384, 404, 424, 442, 462, 481, 500, 520, 539, 561, 578, 598, 619, 638, 656, 677, 696, 716, 734, 754, 774, 792, 812, 832, 851, 870, 889, 909, 929, 947, 967, 986, 1005, 1025, 1044, 1064, 1083, 1102, 1122, 1140, 1160, 1181, 1200, 1221, 1240, 1258, 1279, 1296, 1317, 1337, 1356, 1375, 1395, 1414, 1434, 1452, 1472, 1492, 1510, 1530]
    攻击次数1 = 3
    data2 = [0, 763, 841, 920, 998, 1075, 1153, 1230, 1308, 1385, 1463, 1542, 1620, 1697, 1775, 1851, 1929, 2006, 2084, 2161, 2241, 2318, 2395, 2473, 2550, 2628, 2704, 2782, 2861, 2939, 3016, 3094, 3171, 3249, 3326, 3405, 3483, 3561, 3638, 3716, 3792, 3870, 3947, 4024, 4104, 4181, 4259, 4336, 4414, 4491, 4569, 4645, 4726, 4802, 4880, 4957, 5035, 5112, 5190, 5267, 5347, 5424, 5502, 5579, 5657, 5733, 5810, 5888, 5966, 6045, 6122]
    攻击次数2 = 1
    data3 = [0, 6122, 6743, 7365, 7986, 8608, 9229, 9849, 10471, 11092, 11713, 12335, 12956, 13575, 14197, 14818, 15438, 16060, 16680, 17301, 17923, 18544, 19166, 19787, 20407, 21029, 21650, 22271, 22893, 23514, 24134, 24756, 25377, 25999, 26620, 27241, 27862, 28483, 29104, 29726, 30347, 30969, 31589, 32209, 32832, 33453, 34073, 34694, 35315, 35936, 36558, 37179, 37802, 38421, 39042, 39664, 40285, 40906, 41528, 42148, 42769, 43391, 44012, 44634, 45255, 45875, 46497, 47118, 47739, 48361, 48982]
    攻击次数3 = 1
    CD = 25.0
    攻击倍率 = 1.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.05
            self.攻击次数3 = 1 * 1.19
            self.CD *= 0.88
        elif x == 1:
            self.倍率 *= 1.05 + 0.08
            self.攻击次数3 = 1 * 1.19
            self.CD *= 0.88


class 技能10(主动技能):
    名称 = '忍法：六道轮回'
    所在等级 = 40
    等级上限 = 11
    基础等级 = 1
    关联技能 = ['火遁·豪火球之术', '忍法：幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法：替身术',
            '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照', '勾玉之火·镰鼬']
    六道技能显示 = []
    CD = 30

    自定义描述 = 1

    def 技能描述(self, 武器类型):
        temp = ''
        temp += "CD:" + str(self.CD)+"<br>"
        temp += '加成倍率:80%<br>'
        temp += '关联技能:'
        try:
            for i in range(len(self.六道技能显示) - 1):
                temp += self.六道技能显示[i] + ','
            temp += self.六道技能显示[len(self.六道技能显示) - 1]
        except:
            temp += '无'
        return temp

    def 加成倍率(self, 武器类型):
        return 1.0


class 技能11(主动技能):
    名称 = '火遁·炎舞天璇'
    所在等级 = 45
    等级上限 = 60
    学习间隔 = 2
    等级精通 = 50
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 455, 500, 548, 594, 639, 685, 730, 778, 824, 869, 916, 962, 1008, 1054, 1100, 1147, 1192, 1239, 1284, 1330, 1379, 1424, 1470, 1515, 1561, 1608, 1655, 1699, 1747, 1792, 1838, 1884, 1931, 1977, 2023, 2068, 2115, 2160, 2207, 2255, 2299, 2346, 2391, 2438, 2484, 2530, 2576, 2623, 2668, 2714, 2759, 2808, 2853, 2899, 2946, 2991, 3037, 3084, 3130, 3176, 3222, 3267, 3315, 3360, 3407, 3452, 3499, 3544, 3590, 3637]
    攻击次数1 = 8
    data2 = [0, 138, 150, 164, 178, 191, 205, 219, 234, 247, 261, 274, 289, 303, 316, 330, 344, 358, 371, 385, 400, 413, 427, 440, 455, 469, 481, 496, 510, 525, 539, 551, 566, 579, 594, 606, 621, 634, 649, 663, 675, 691, 703, 718, 730, 746, 759, 772, 787, 800, 815, 828, 842, 856, 869, 883, 896, 911, 925, 940, 952, 966, 981, 995, 1008, 1022, 1036, 1050, 1064, 1077, 1092]
    攻击次数2 = 25
    data3 = [0, 3752, 4132, 4511, 4892, 5272, 5653, 6033, 6414, 6794, 7174, 7554, 7936, 8317, 8698, 9077, 9458, 9837, 10219, 10599, 10980, 11360, 11740, 12121, 12503, 12882, 13262, 13643, 14023, 14404, 14785, 15166, 15546, 15926, 16305, 16685, 17067, 17449, 17829, 18210, 18589, 18969, 19350, 19730, 20111, 20491, 20872, 21251, 21633, 22014, 22395, 22775, 23155, 23535, 23917, 24296, 24677, 25057, 25437, 25818, 26200, 26580, 26959, 27340, 27720, 28101, 28482, 28863, 29243, 29624, 30003]
    攻击次数3 = 1
    # CD = 33.6
    CD = 40
    攻击倍率 = 1.0
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数1 = 8 - 5
            self.攻击次数2 = 25 * 2.15
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数1 = 8 - 5
            self.攻击次数2 = 25 * (2.15 + 0.23)
            self.CD *= 0.9


class 技能12(被动技能):
    名称 = '暗炎残星'
    所在等级 = 45
    等级上限 = 20
    基础等级 = 1

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.09 + 0.01 * self.等级, 5)


class 技能13(主动技能):
    名称 = '毕方之印'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20
    data1 = [0, 203, 235, 268, 300, 332, 365, 397, 429, 462, 494, 526, 559, 591, 623, 656, 688, 720, 753, 785, 817, 850, 882, 914, 947, 979, 1011, 1044, 1076, 1108, 1141, 1173, 1205, 1238, 1270, 1302, 1335, 1367, 1399, 1432, 1464, 1496, 1529, 1561, 1593, 1626, 1658, 1691, 1723, 1755, 1788, 1820, 1852, 1885, 1917, 1949, 1982, 2014, 2046, 2079, 2111, 2143, 2176, 2208, 2240, 2273, 2305, 2337, 2370, 2402, 2434]
    攻击次数1 = 8
    data2 = [0, 423, 490, 557, 625, 692, 760, 827, 894, 962, 1029, 1096, 1164, 1231, 1299, 1366, 1433, 1501, 1568, 1635, 1703, 1770, 1838, 1905, 1972, 2040, 2107, 2174, 2242, 2309, 2377, 2444, 2511, 2579, 2646, 2713, 2781, 2848, 2916, 2983, 3050, 3118, 3185, 3252, 3320, 3387, 3455, 3522, 3589, 3657, 3724, 3791, 3859, 3926, 3994, 4061, 4128, 4196, 4263, 4330, 4398, 4465, 4533, 4600, 4667, 4735, 4802, 4869, 4937, 5004, 5072]
    攻击次数2 = 1
    攻击倍率 = 1.0
    # 爆炸攻击力
    # [0, 1014, 1176, 1338, 1499, 1661, 1823, 1985, 2146, 2308, 2470, 2631, 2793, 2955, 3116, 3278, 3440, 3602, 3763, 3925, 4087, 4248, 4410, 4572, 4733, 4895, 5057, 5219, 5380, 5542, 5704, 5865, 6027, 6189, 6350, 6512, 6674, 6836, 6997, 7159, 7321, 7482, 7644, 7806, 7967, 8129, 8291, 8453, 8614, 8776, 8938, 9099, 9261, 9423, 9584, 9746, 9908, 10070, 10231, 10393, 10555, 10716, 10878, 11040, 11201, 11363, 11525, 11687, 11848, 12010, 12172]

    是否主动 = 0
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '火属性强化+' + str(self.属强加成())

    def 属强加成(self):
        if self.等级 == 0:
            return 0
        else:
            return (30 + 2 * self.等级)

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    def 等效CD(self, 武器类型, 输出类型):
        return 1.0


class 技能14(主动技能):
    名称 = '火遁·冥炎业火阵'
    所在等级 = 50
    等级上限 = 40
    学习间隔 = 5
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)
    #data1 = [0, 27341, 33687, 40028, 46370, 52709, 59053, 65397, 71737, 78078, 84421, 90761, 97102, 103446, 109787, 116126, 122469, 128813, 135153, 141494, 147835, 154178, 160518, 166861, 173204, 179543, 185887, 192228, 198569, 204911, 211251, 217594, 223936, 230279, 236618, 242961, 249300, 255646, 261987, 268329, 274669, 615050, 628926, 642810, 656687, 670567, 684449, 698329, 712209, 726088, 739970, 753851, 767728, 781612, 795489, 809371, 823248, 837131, 851009, 864885, 878771, 892648, 906531, 920408, 934289, 948170, 962047, 975928, 989814, 1003691, 1017570]
    data1 = [(i*1.0) for i in [0, 4355, 5367, 6377, 7388, 8398, 9410, 10420, 11429, 12439, 13450, 14460, 15472, 16482, 17493, 18501, 19513, 20523, 21534, 22544, 23555, 24565, 25574, 26587, 27595, 28606, 29616, 30628, 31638, 32649, 33658, 34668, 35678, 36690, 37700, 38711, 39721, 40733, 41742, 42752, 43762, 44772, 45783, 46793, 47804, 48814, 49825, 50835, 51845, 52856, 53866, 54877, 55887, 56898, 57908, 58918, 59929, 60939, 61950, 62960, 63971, 64981, 65991, 67002, 68012, 69023, 70033, 71044, 72054, 73064, 74075]]
    data2 = [(i*1.0) for i in [0, 5931, 7305, 8683, 10057, 11434, 12809, 14186, 15560, 16936, 18311, 19686, 21062, 22437, 23813, 25188, 26565, 27939, 29314, 30690, 32065, 33442, 34816, 36193, 37568, 38942, 40319, 41694, 43069, 44446, 45822, 47197, 48573, 49948, 51323, 52699, 54074, 55451, 56825, 58202, 59577, 60952, 62328, 63703, 65079, 66454, 67830, 69205, 70581, 71957, 73332, 74708, 76083, 77459, 78834, 80210, 81585, 82961, 84336, 85712, 87087, 88463, 89838, 91214, 92589, 93965, 95340, 96716, 98092, 99467, 100843]]
    data3 = [(i*1.0) for i in [0, 8420, 10376, 12327, 14279, 16232, 18186, 20139, 22091, 24044, 25998, 27951, 29902, 31857, 33809, 35761, 37714, 39667, 41621, 43573, 45527, 47479, 49433, 51384, 53339, 55290, 57242, 59197, 61149, 63102, 65054, 67009, 68961, 70914, 72868, 74821, 76772, 78724, 80678, 82631, 84584, 86537, 88490, 90443, 92395, 94348, 96301, 98254, 100207, 102160, 104113, 106066, 108019, 109972, 111925, 113878, 115831, 117783, 119736, 121689, 123642, 125595, 127548, 129501, 131454, 133407, 135360, 137313, 139266, 141219, 143171]]
    data4 = [(i*1.0) for i in [0, 9885, 12178, 14472, 16763, 19055, 21349, 23642, 25933, 28225, 30519, 32812, 35102, 37396, 39689, 41981, 44273, 46567, 48859, 51150, 53444, 55737, 58029, 60320, 62614, 64907, 67200, 69492, 71784, 74077, 76368, 78662, 80955, 83249, 85539, 87832, 90125, 92418, 94709, 97002, 99296, 101589, 103881, 106174, 108467, 110759, 113052, 115344, 117637, 119930, 122222, 124515, 126807, 129100, 131393, 133685, 135978, 138270, 140563, 142856, 145148, 147441, 149733, 152026, 154319, 156611, 158904, 161196, 163489, 165782, 168074]]
    data5 = [(i*1.0) for i in [0, 1225, 1510, 1795, 2080, 2362, 2647, 2932, 3217, 3502, 3784, 4069, 4354, 4639, 4924, 5208, 5491, 5776, 6061, 6346, 6630, 6914, 7198, 7483, 7768, 8052, 8336, 8621, 8905, 9190, 9474, 9758, 10043, 10328, 10612, 10896, 11180, 11465, 11750, 12034, 12318, 12602, 12886, 13171, 13455, 13740, 14024, 14309, 14593, 14877, 15162, 15446, 15731, 16015, 16300, 16584, 16868, 17153, 17437, 17722, 18006, 18291, 18575, 18859, 19144, 19428, 19713, 19997, 20281, 20566, 20850]]
    data6 = [(i*1.0) for i in [0, 0, 0, 846, 982, 1116, 1251, 1384, 1519, 1654, 1787, 1921, 2054, 2190, 2325, 2458, 2590, 2726, 2860, 2995, 3129, 3264, 3398, 3531, 3666, 3799, 3934, 4068, 4201, 4337, 4472, 4686, 4829, 4972, 5113, 5255, 5397, 5540, 5681, 5824, 5968, 6103, 6237, 6371, 6505, 6640, 6774, 6908, 7043, 7177, 7311, 7445, 7580, 7714, 7848, 7983, 8117, 8251, 8385, 8520, 8654, 8788, 8923, 9057, 9191, 9325, 9460, 9594, 9728, 9863, 9997]]
    data = [data1, data2, data3, data4, data5, data6]
    次数 = [1, 1, 1, 1, 1, 1, 9]
    CD = 145

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.data)):
            sum += self.data[i][self.等级] * self.次数[i]
        return sum * self.倍率 * 1.1

# 地面释放


class 技能15(主动技能):
    名称 = '忍法：飞燕手里剑'
    备注 = '(完全打满)'
    所在等级 = 60
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1

    data1 = [0, 88, 98, 105, 115, 123, 132, 140, 151, 159, 167, 178, 186, 194, 202, 213, 220, 230, 240, 249, 256, 264, 276, 283, 292, 301, 311, 318, 328, 338, 346, 354, 362, 371, 381, 390, 400, 408, 416, 426, 434, 443, 452, 461, 471, 479, 487, 496, 505, 514, 524, 533, 543, 553, 562, 571, 581, 591, 600, 609, 619, 629, 638, 647, 658, 667, 676, 685, 696, 705, 714]
    data2 = [0, 110, 121, 132, 142, 153, 165, 176, 188, 198, 210, 220, 232, 243, 254, 264, 276, 287, 299, 311, 321, 331, 343, 354, 366, 377, 388, 398, 410, 421, 433, 443, 453, 465, 476, 487, 498, 509, 520, 532, 544, 555, 566, 576, 586, 598, 609, 621, 631, 644, 655, 667, 679, 691, 704, 715, 727, 739, 751, 764, 775, 788, 799, 812, 824, 836, 848, 859, 872, 884, 896]
    data3 = [0, 62, 67, 76, 81, 88, 93, 99, 108, 114, 119, 127, 132, 140, 147, 151, 159, 164, 172, 178, 182, 189, 195, 202, 210, 215, 220, 227, 233, 240, 246, 253, 258, 266, 273, 279, 286, 291, 299, 305, 311, 316, 322, 330, 337, 341, 347, 354, 362, 368, 373, 380, 384, 390, 396, 401, 407, 413, 419, 425, 430, 436, 442, 448, 453, 459, 465, 471, 476, 482, 488]
    data4 = [0, 127, 138, 151, 164, 176, 189, 202, 213, 227, 240, 253, 264, 277, 291, 303, 316, 329, 341, 354, 367, 380, 392, 404, 418, 430, 443, 456, 468, 482, 494, 506, 519, 532, 544, 556, 570, 583, 595, 608, 621, 634, 647, 659, 671, 684, 698, 709, 721, 735, 748, 761, 774, 788, 801, 814, 827, 841, 854, 867, 881, 894, 908, 921, 934, 947, 961, 974, 987, 1001, 1014]
    data5 = [0, 440, 482, 527, 572, 617, 660, 705, 750, 794, 837, 884, 927, 972, 1015, 1061, 1105, 1149, 1195, 1239, 1282, 1328, 1372, 1417, 1460, 1504, 1550, 1593, 1638, 1684, 1727, 1772, 1816, 1862, 1905, 1950, 1995, 2038, 2082, 2127, 2172, 2216, 2260, 2306, 2349, 2394, 2437, 2484, 2527, 2571, 2615, 2659, 2703, 2747, 2790, 2834, 2878, 2922, 2966, 3008, 3052, 3096, 3140, 3184, 3228, 3272, 3315, 3359, 3403, 3447, 3491]
    data6 = [0, 366, 403, 441, 476, 514, 550, 586, 624, 661, 698, 735, 773, 810, 847, 885, 922, 959, 994, 1031, 1068, 1105, 1143, 1179, 1217, 1254, 1291, 1329, 1366, 1403, 1441, 1477, 1512, 1550, 1587, 1623, 1662, 1698, 1736, 1773, 1810, 1847, 1885, 1921, 1958, 1996, 2031, 2069, 2106, 2142, 2180, 2216, 2253, 2290, 2327, 2364, 2401, 2437, 2474, 2511, 2547, 2584, 2621, 2658, 2695, 2732, 2769, 2805, 2842, 2879, 2915]
    data7 = [0, 512, 563, 617, 668, 719, 771, 822, 874, 926, 978, 1030, 1082, 1134, 1187, 1238, 1290, 1342, 1394, 1445, 1496, 1549, 1600, 1653, 1704, 1756, 1806, 1861, 1911, 1965, 2015, 2068, 2119, 2172, 2223, 2274, 2326, 2376, 2431, 2481, 2534, 2585, 2638, 2689, 2742, 2793, 2845, 2895, 2949, 2999, 3052, 3103, 3154, 3206, 3258, 3308, 3360, 3411, 3463, 3514, 3566, 3616, 3668, 3719, 3771, 3823, 3874, 3926, 3976, 4028, 4079]

    次数 = [1,3,15,15,1,10,10]

    data0 = [data1,data2,data3,data4,data5,data6,data7]

    攻击倍率 = 1
    CD = 30
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.data0)):
            sum += self.data0[i][self.等级] * self.次数[i]
        return sum * self.倍率 * (1 + self.TP成长 * self.TP等级)

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.07
        elif x == 1:
            self.倍率 *= 1.07 + 0.09


class 技能16(主动技能):
    名称 = '火遁·风魔手里剑'
    所在等级 = 70
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 250, 274, 300, 325, 351, 375, 401, 426, 452, 477, 502, 527, 553, 578, 604, 629, 654, 680, 705, 731, 755, 781, 806, 832, 856, 882, 907, 933, 958, 984, 1008, 1034, 1060, 1085, 1111, 1135, 1161, 1186, 1212, 1236, 1262, 1287, 1313, 1338, 1363, 1388, 1414, 1439, 1465, 1490, 1515, 1541, 1566, 1592, 1616, 1642, 1667, 1693, 1717, 1743, 1768, 1794, 1819, 1844, 1869, 1895, 1921, 1946, 1971, 1996]
    攻击次数1 = 15
    data2 = [0, 561, 618, 676, 732, 789, 846, 903, 960, 1017, 1073, 1131, 1188, 1244, 1302, 1359, 1416, 1472, 1530, 1587, 1643, 1701, 1758, 1814, 1871, 1929, 1985, 2042, 2100, 2157, 2213, 2270, 2328, 2384, 2441, 2499, 2555, 2612, 2670, 2726, 2783, 2840, 2898, 2954, 3011, 3069, 3125, 3182, 3239, 3296, 3353, 3410, 3466, 3524, 3581, 3638, 3695, 3752, 3809, 3865, 3923, 3980, 4036, 4094, 4151, 4207, 4264, 4322, 4379, 4435, 4493]
    攻击次数2 = 10
    data3 = [0, 9360, 10309, 11259, 12209, 13159, 14108, 15058, 16007, 16957, 17906, 18856, 19806, 20756, 21706, 22654, 23604, 24554, 25504, 26453, 27403, 28353, 29303, 30251, 31201, 32151, 33101, 34050, 35000, 35950, 36899, 37848, 38798, 39748, 40698, 41648, 42597, 43546, 44496, 45446, 46395, 47345, 48295, 49245, 50193, 51143, 52093, 53043, 53992, 54942, 55892, 56841, 57790, 58740, 59690, 60640, 61590, 62539, 63489, 64438, 65388, 66337, 67287, 68237, 69187, 70136, 71085, 72035, 72985, 73934, 74884]
    攻击次数3 = 1
    CD = 50
    攻击倍率 = 1
    TP成长 = 0.10
    TP基础 = 5
    TP上限 = 5
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数1 = 0
            self.攻击次数2 = 10 + 10
            self.攻击次数3 = 1 * 1.14
        elif x == 1:
            self.攻击次数1 = 0
            self.攻击次数2 = 10 + 10
            self.攻击次数3 = 1 * (1.14 + 0.16)


class 技能17(主动技能):
    名称 = '八尺琼勾玉'
    备注 = '来回两次伤害'
    所在等级 = 70
    等级上限 = 1
    基础等级 = 1
    data1 = [0, 740]
    攻击次数1 = 2
    data2 = [0, 820]
    攻击次数2 = 2
    data3 = [0, 850]
    攻击次数3 = 2
    CD = 3.0

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率

    def 等效CD(self, 武器类型, 输出类型):
        # Will修改
        return round(self.CD / self.恢复, 1)


class 技能18(被动技能):
    名称 = '八咫镜'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.08 + 0.02 * self.等级, 5)


class 技能19(主动技能):
    名称 = '八岐大蛇'
    备注 = '(者皆阵结印)'
    所在等级 = 75
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 2406, 2555, 2705, 2853, 3002, 3150, 3300, 3449, 3598, 3747, 3895, 4044, 4193, 4343, 4491, 4641, 4789, 4938, 5087, 5236, 5385, 5534, 5682, 5832, 5981, 6130, 6279, 6428, 6576, 6725, 6874, 7023, 7173, 7320, 7470, 7619, 7768, 7917, 8066, 8214, 8363, 8513, 8661, 8811, 8960, 9108, 9257, 9406, 9556, 9704, 9854, 10001, 10151, 10299, 10449, 10599, 10747, 10896, 11044, 11194, 11342, 11492, 11642, 11789, 11939, 12087, 12237, 12385, 12535, 12682]
    攻击次数1 = 1
    data2 = [0, 2490, 2718, 2949, 3177, 3407, 3635, 3864, 4094, 4323, 4552, 4781, 5010, 5240, 5469, 5698, 5927, 6156, 6386, 6615, 6843, 7073, 7301, 7532, 7760, 7989, 8218, 8447, 8677, 8906, 9135, 9363, 9593, 9822, 10052, 10280, 10510, 10738, 10969, 11197, 11427, 11655, 11885, 12114, 12344, 12572, 12801, 13030, 13260, 13489, 13718, 13947, 14175, 14406, 14634, 14864, 15092, 15321, 15551, 15780, 16009, 16238, 16467, 16697, 16926, 17155, 17384, 17613, 17843, 18072, 18300]
    攻击次数2 = 10
    data3 = [0, 389, 449, 510, 568, 628, 689, 747, 807, 866, 926, 986, 1045, 1105, 1163, 1224, 1284, 1342, 1403, 1463, 1521, 1582, 1640, 1700, 1761, 1819, 1879, 1940, 1998, 2058, 2118, 2177, 2237, 2296, 2356, 2415, 2475, 2535, 2593, 2654, 2714, 2772, 2833, 2892, 2951, 3012, 3070, 3130, 3191, 3249, 3309, 3369, 3428, 3488, 3548, 3607, 3666, 3726, 3786, 3845, 3905, 3965, 4023, 4084, 4143, 4202, 4263, 4322, 4381, 4442, 4501]
    攻击次数3 = 22
    攻击倍率 = 1.0
    CD = 43
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数1 = 0
            self.攻击次数2 = (10 + 1) * 1.74
            self.攻击次数3 = 0


class 技能20(主动技能):
    名称 = '天照'
    备注 = '(者皆阵结印)'
    所在等级 = 80
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔), 等级精通) + 1
    data1 = [0, 3245, 3573, 3903, 4232, 4562, 4891, 5219, 5549, 5878, 6208, 6537, 6865, 7195, 7525, 7854, 8182, 8512, 8840, 9171, 9500, 9828, 10158, 10487, 10817, 11145, 11474, 11803, 12133, 12461, 12791, 13121, 13449, 13779, 14108, 14437, 14766, 15096, 15424, 15754, 16083, 16412, 16742, 17070, 17400, 17729, 18058, 18387, 18717, 19046, 19375, 19705, 20032, 20363, 20692, 21021, 21351, 21679, 22009, 22338, 22667, 22995, 23325, 23654, 23984, 24314, 24641, 24971, 25301, 25630, 25958]
    攻击次数1 = 2
    data2 = [0, 3454, 3805, 4155, 4505, 4857, 5207, 5558, 5908, 6258, 6609, 6959, 7309, 7660, 8010, 8361, 8711, 9061, 9413, 9762, 10112, 10463, 10814, 11165, 11514, 11864, 12216, 12566, 12917, 13267, 13617, 13969, 14319, 14670, 15019, 15370, 15721, 16071, 16420, 16772, 17122, 17472, 17823, 18173, 18524, 18874, 19224, 19575, 19925, 20275, 20626, 20976, 21328, 21678, 22028, 22379, 22729, 23081, 23430, 23780, 24131, 24482, 24833, 25182, 25532, 25884, 26234, 26584, 26933, 27285, 27635]
    攻击次数2 = 8
    攻击倍率 = 1.06 # 者皆阵倍率
    # 攻击倍率 = 1.03  # 临兵斗倍率
    CD = 51
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数2 = 8 * 1.33
            self.CD *= 0.85


class 技能21(主动技能):
    名称 = '开二觉平x'
    备注 = '一轮平x'
    所在等级 = 85
    等级上限 = 1
    #学习间隔 = 5
    #等级精通 = 30
    基础等级 = 1
    # 投掷火焰苦无
    data1 = [0, 232, 249, 265, 280, 297, 313, 329, 345, 361, 377, 393, 408, 424, 440, 457, 473, 488, 505, 521, 537, 552, 569, 585, 601, 616, 632, 648, 665, 680, 696, 712, 729, 744, 760, 777, 793, 809, 824, 840, 856, 872, 888, 904, 920, 937, 952, 968, 985, 1001, 1016, 1032, 1048, 1064, 1079, 1096, 1112, 1128, 1145, 1160, 1176, 1192, 1209, 1224, 1240, 1256, 1272, 1287, 1304, 1320, 1336]
    攻击次数1 = 6
    # 火焰苦无爆炸
    data2 = [0, 305, 315, 326, 336, 347, 357, 368, 378, 389, 399, 408, 420, 431, 440, 452, 462, 471, 483, 494, 503, 513, 525, 534, 545, 557, 566, 576, 588, 597, 608, 618, 629, 639, 650, 660, 671, 681, 692, 702, 713, 723, 734, 744, 755, 765, 776, 786, 797, 807, 818, 827, 839, 849, 859, 870, 881, 890, 902, 912, 922, 932, 944, 953, 964, 975, 985, 995, 1007, 1016, 1027]
    攻击次数2 = 6
    # 地面斩击
    data3 = [0, 969, 996, 1024, 1051, 1079, 1107, 1134, 1161, 1190, 1217, 1244, 1272, 1300, 1327, 1355, 1382, 1410, 1437, 1465, 1492, 1520, 1548, 1575, 1602, 1631, 1658, 1685, 1713, 1741, 1768, 1796, 1823, 1851, 1878, 1906, 1933, 1961, 1989, 2016, 2043, 2072, 2099, 2126, 2154, 2182, 2209, 2237, 2264, 2292, 2319, 2347, 2374, 2402, 2430, 2457, 2484, 2513, 2540, 2567, 2595, 2623, 2650, 2678, 2705, 2733, 2760, 2788, 2815, 2843, 2871]
    攻击次数3 = 1.3
    # 攻击倍率3 = 0.65
    攻击倍率 = 1
    CD = 1.0

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 + self.data3[self.等级] * self.攻击次数3) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率

    def 等效CD(self, 武器类型, 输出类型):
        # Will修改
        return round(self.CD / self.恢复, 1)


class 技能22(主动技能):
    名称 = '火炎灼空：草雉剑'
    所在等级 = 85
    等级上限 = 40
    学习间隔 = 5
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)
    data1 = [0, 4544, 5599, 6653, 7706, 8760, 9814, 10867, 11921, 12975, 14028, 15082, 16137, 17191, 18244, 19298, 20352, 21405, 22459, 23514, 24568, 25621, 26676, 27730, 28783, 29837, 30891, 31944, 32998, 34052, 35105, 36159, 37214, 38268, 39321, 40375, 41429, 42482, 43536, 44590, 45643, 46697, 47752, 48805, 49859, 50913, 51967, 53020, 54074, 55128, 56181, 57235, 58290, 59345, 60398, 61452, 62506, 63559, 64613, 65667, 66720, 67774, 68829, 69883, 70936, 71990, 73044, 74097, 75151, 76205, 77258]
    攻击次数1 = 1
    data2 = [0, 23026, 28366, 33704, 39044, 44383, 49722, 55061, 60401, 65739, 71079, 76418, 81758, 87097, 92437, 97776, 103115, 108455, 113793, 119133, 124472, 129811, 135150, 140491, 145829, 151169, 156507, 161847, 167186, 172525, 177865, 183204, 188545, 193883, 199223, 204561, 209901, 215240, 220579, 225918, 231258, 236596, 241936, 247277, 252615, 257955, 263294, 268633, 273972, 279312, 284650, 289990, 295328, 300668, 306007, 311348, 316686, 322026, 327366, 332704, 338044, 343382, 348722, 354061, 359400, 364739, 370080, 375418, 380758, 386097, 391436]
    攻击次数2 = 3
    攻击倍率 = 1
    CD = 180

    def 等效百分比(self, 武器类型):
        return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2) * (1 + self.TP成长 * self.TP等级) * self.倍率 * self.攻击倍率


class 技能23(被动技能):
    名称 = '三元刹'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能24(主动技能):
    名称 = '勾玉之火·镰鼬'
    备注 = '(者皆阵结印)'
    所在等级 = 95
    等级上限 = 40
    学习间隔 = 2
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)
    data1 = [0, 9696, 10680, 11664, 12648, 13631, 14615, 15599, 16582, 17566, 18550, 19534, 20517, 21501, 22485, 23468, 24452, 25436, 26419, 27403, 28387, 29371, 30354, 31338, 32322, 33305, 34289, 35273, 36256, 37240, 38224, 39208, 40191, 41175, 42159, 43142, 44126, 45110, 46093, 47077, 48061, 49045, 50028, 51012, 51996, 52979, 53963, 54947, 55930, 56914, 57898, 58882, 59865, 60849, 61833, 62816, 63800, 64784, 65767, 66751, 67735, 68719, 69702, 70686, 71670, 72653, 73637, 74621, 75605, 76588, 77572]
    data2 = [0, 1293, 1424, 1555, 1686, 1817, 1949, 2080, 2211, 2342, 2473, 2604, 2736, 2867, 2998, 3129, 3260, 3391, 3523, 3654, 3785, 3916, 4047, 4178, 4310, 4441, 4572, 4703, 4834, 4965, 5097, 5228, 5359, 5490, 5621, 5752, 5883, 6015, 6146, 6277, 6408, 6539, 6670, 6802, 6933, 7064, 7195, 7326, 7457, 7589, 7720, 7851, 7982, 8113, 8244, 8376, 8507, 8638, 8769, 8900, 9031, 9162, 9294, 9425, 9556, 9687, 9818, 9949, 10081, 10212, 10343]
    data3 = [0, 45738, 50378, 55018, 59658, 64298, 68938, 73578, 78219, 82859, 87499, 92139, 96779, 101419, 106059, 110700, 115340, 119980, 124620, 129260, 133900, 138540, 143180, 147820, 152460, 157100, 161741, 166381, 171021, 175661, 180301, 184941, 189581, 194221, 198861, 203501, 208142, 212782, 217422, 222062, 226702, 231342, 235982, 240622, 245262, 249902, 254542, 259183, 263823, 268463, 273103, 277743, 282383, 287023, 291663, 296303, 300943, 305583, 310224, 314864, 319504, 324144, 328784, 333424, 338064, 342705, 347345, 351985, 356625, 361265, 365905]

    data0 = [data1,data2,data3]
    次数 = [1,30,1]

    攻击倍率 = 1.06

    CD = 60

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.data0)):
            sum += self.data0[i][self.等级] * self.次数[i]
        return sum * self.倍率 * (1 + self.TP成长 * self.TP等级) *self.攻击倍率
    # def 等效百分比(self, 武器类型):
    # return (self.data1[self.等级] * self.攻击次数1 + self.data2[self.等级] * self.攻击次数2 * self.攻击倍率) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能25(主动技能):
    名称 = '火源限界·八咫乌'
    所在等级 = 100
    等级上限 = 40
    学习间隔 = 5
    等级精通 = 30
    基础等级 = min(int((等级 - 所在等级) / 学习间隔 + 1), 等级精通)

    data1 = [0, 5932, 7308, 8683, 10059, 11434, 12810, 14185, 15561, 16937, 18312, 19688, 21063, 22439, 23814, 25190, 26565, 27941, 29317, 30692, 32068, 33443, 34819, 36194, 37570, 38945, 40321, 41697, 43072, 44448, 45823, 47199, 48574, 49950, 51325, 52701, 54077, 55452, 56828, 58203, 59579, 60954, 62330, 63706, 65081, 66457, 67832, 69208, 70583, 71959, 73334, 74710, 76086, 77461, 78837, 80212, 81588, 82963, 84339, 85714, 87090, 88466, 89841, 91217, 92592, 93968, 95343, 96719, 98094, 99470, 100846]
    data2 = [0, 7627, 9396, 11164, 12933, 14701, 16470, 18238, 20007, 21776, 23544, 25313, 27081, 28850, 30618, 32387, 34156, 35924, 37693, 39461, 41230, 42998, 44767, 46536, 48304, 50073, 51841, 53610, 55378, 57147, 58916, 60684, 62453, 64221, 65990, 67758, 69527, 71296, 73064, 74833, 76601, 78370, 80139, 81907, 83676, 85444, 87213, 88981, 90750, 92519, 94287, 96056, 97824, 99593, 101361, 103130, 104899, 106667, 108436, 110204, 111973, 113741, 115510, 117279, 119047, 120816, 122584, 124353, 126121, 127890, 129659]
    data3 = [0, 177963, 219230, 260496, 301763, 343030, 384296, 425563, 466830, 508097, 549363, 590630, 631897, 673164, 714430, 755697, 796964, 838230, 879497, 920764, 962031, 1003297, 1044564, 1085831, 1127098, 1168364, 1209631, 1250898, 1292165, 1333431, 1374698, 1415965, 1457231, 1498498, 1539765, 1581032, 1622298, 1663565, 1704832, 1746099, 1787365, 1828632, 1869899, 1911165, 1952432, 1993699, 2034966, 2076232, 2117499, 2158766, 2200033, 2241299, 2282566, 2323833, 2365100, 2406366, 2447633, 2488900, 2530166, 2571433, 2612700, 2653967, 2695233, 2736500, 2777767, 2819034, 2860300, 2901567, 2942834, 2984100, 3025367]

    data0 = [data1,data2,data3]
    次数 = [12,14,1]

    CD = 290.0

    关联技能 = ['无']

    def 加成倍率(self, 武器类型):
        return 0.0

    def 等效百分比(self, 武器类型):
        sum = 0
        for i in range(len(self.data0)):
            sum += self.data0[i][self.等级] * self.次数[i]
        return sum * self.倍率 * (1 + self.TP成长 * self.TP等级)


class 技能26(被动技能):
    名称 = '忍术精通'
    所在等级 = 15
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['无']
    冷却关联技能 = ['火遁·豪火球之术', '忍法：幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑','火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照','勾玉之火·镰鼬']

    def CD缩减倍率(self, 武器类型):
        return 0.8


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能' + str(i) + '())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

一觉序号 = 0
二觉序号 = 0
三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        三觉序号 = 技能序号[i.名称]

护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        护石选项.append(i.名称)

符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        符文选项.append(i.名称)


class 职业属性(角色属性):
    实际名称 = '隐夜·忍者'
    角色 = '暗夜使者'
    职业 = '忍者'

    武器选项 = ['苦无']

    类型选择 = ['魔法百分比']

    类型 = '魔法百分比'
    防具类型 = '布甲'
    防具精通属性 = ['智力', '力量']

    主BUFF = 2.04

    远古记忆 = 0

    六道绑定技能 = []

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        super().被动倍率计算()
        self.技能栏[self.技能序号['毕方之印']].攻击次数1 = int(self.时间输入/2.5)
        self.技能栏[self.技能序号['毕方之印']].攻击次数2 = math.ceil(self.时间输入 / 10) - 1
        self.火属性强化 += self.技能栏[self.技能序号['毕方之印']].属强加成()
        self.技能栏[21].等级 = self.技能栏[22].等级

    def 数据计算(self, x=0, y=-1):
        self.预处理()
        # 初步计算
        技能释放次数 = self.技能释放次数计算()
        技能单次伤害 = self.技能单次伤害计算(y)
        技能总伤害 = self.技能总伤害计算(技能释放次数, 技能单次伤害)

        # 六道伤害计算
        if self.技能栏[self.技能序号['忍法：六道轮回']].等级 != 0 and 技能释放次数[self.技能序号['忍法：六道轮回']] != 0:
            self.技能栏[self.技能序号['忍法：六道轮回']].六道技能显示 = []
            默认宠物技能 = ['火遁·炎天道', '火遁·蟾蜍油炎弹',
                      '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照']
#           if self.宠物次数[self.技能序号['忍法：六道轮回']] == 0 :
#               self.宠物次数[self.技能序号['忍法：六道轮回']] = 0
#           else:
#               self.宠物次数[self.技能序号['忍法：六道轮回']] = 1
            for i in self.六道绑定技能:
                if 技能释放次数[self.技能序号[i]] != 0 and self.技能栏[self.技能序号[i]].等级 != 0:
                    if i in 默认宠物技能:
                        技能总伤害[self.技能序号[i]] += 0.8 * 技能单次伤害[self.技能序号[i]] * (
                            1+self.白兔子技能*0.20+self.年宠技能*0.10*self.宠物次数[self.技能序号['忍法：六道轮回']]+self.斗神之吼秘药*0.12) * 技能释放次数[self.技能序号['忍法：六道轮回']]
                        默认宠物技能.remove(i)
                        self.技能栏[self.技能序号['忍法：六道轮回']].六道技能显示.append(i)
                    else:
                        技能总伤害[self.技能序号[i]] += 0.8 * 技能单次伤害[self.技能序号[i]] * \
                            (1+self.白兔子技能*0.20 + self.斗神之吼秘药*0.12) * \
                            技能释放次数[self.技能序号['忍法：六道轮回']]
                        self.技能栏[self.技能序号['忍法：六道轮回']].六道技能显示.append(i)
        else:
            self.技能栏[self.技能序号['忍法：六道轮回']].自定义描述 = 0

        # 返回结果
        return self.数据返回(x, 技能释放次数, 技能总伤害)


class 隐夜·忍者(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 职业属性()
        self.角色属性A = 职业属性()
        self.角色属性B = 职业属性()
        self.一觉序号 = 一觉序号
        self.二觉序号 = 二觉序号
        self.三觉序号 = 三觉序号
        self.护石选项 = deepcopy(护石选项)
        self.符文选项 = deepcopy(符文选项)

    def 载入配置(self, path='set'):
        super().载入配置(path)
        try:
            setfile = open('./ResourceFiles/' + self.角色属性A.实际名称 + '/' +
                           path + '/skill5.ini', 'r', encoding='utf-8').readlines()
            num = 0
            for i in range(len(self.可绑定技能)):
                self.绑定技能次数[i].setCurrentIndex(
                    int(setfile[num].replace('\n', '')))
                num += 1
        except:
            pass

    def 界面(self):
        super().界面()

        self.六道绑定按钮 = []
        self.可绑定技能 = ['火遁·豪火球之术', '忍法：幻影手里剑', '火遁·飓风煞', '火遁·螺旋手里剑', '忍法：替身术',
                      '火遁·炎天道', '火遁·蟾蜍油炎弹', '火遁·炎舞天璇', '八岐大蛇', '火遁·风魔手里剑', '天照']
        self.绑定技能次数 = []

        水平间隔 = 210
        竖直间隔 = 30

        for i in range(len(self.可绑定技能)):
            self.六道绑定按钮.append(QLabel(self.可绑定技能[i], self.main_frame2))
            self.六道绑定按钮[i].setAlignment(Qt.AlignCenter)
            self.六道绑定按钮[i].resize(100, 20)
            self.六道绑定按钮[i].move(325 + (i % 2) * 水平间隔, 420 + int(i / 2) * 竖直间隔)
            self.六道绑定按钮[i].setStyleSheet(标签样式)
            self.绑定技能次数.append(MyQComboBox(self.main_frame2))
            self.绑定技能次数[i].resize(48, 20)
            self.绑定技能次数[i].move(440 + (i % 2) * 水平间隔, 420 + int(i / 2) * 竖直间隔)
            self.绑定技能次数[i].addItem('0')
            self.绑定技能次数[i].addItem('1')
            self.绑定技能次数[i].addItem('2')
            self.绑定技能次数[i].addItem('3')
            self.职业存档.append((self.可绑定技能[i], self.绑定技能次数[i], 1))

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)
#        for i in range(len(self.可绑定技能)):
#            if self.次数输入[self.角色属性A.技能序号[self.可绑定技能[i]]].currentIndex() != 0:
#                self.绑定技能次数[i].setCurrentIndex(min(self.绑定技能次数[i].currentIndex(), self.次数输入[self.角色属性A.技能序号[self.可绑定技能[i]]].currentIndex() - 1))
        temp = []
        for i in range(len(self.可绑定技能)):
            if self.绑定技能次数[i].currentIndex() == 1:
                temp.append(self.可绑定技能[i])
            elif self.绑定技能次数[i].currentIndex() == 2:
                temp.append(self.可绑定技能[i])
                temp.append(self.可绑定技能[i])
            elif self.绑定技能次数[i].currentIndex() == 3:
                temp.append(self.可绑定技能[i])
                temp.append(self.可绑定技能[i])
                temp.append(self.可绑定技能[i])
        属性.六道绑定技能 = deepcopy(temp)
